// usdtAbi 名字地址
const bankAbi = {
    name: 'bank',
    contractAbi: [
		{
			"anonymous": false,
			"inputs": [
				{
					"indexed": true,
					"internalType": "uint256",
					"name": "id",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "owner",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "unlockDate",
					"type": "uint256"
				}
			],
			"name": "LockAdded",
			"type": "event"
		},
		{
			"anonymous": false,
			"inputs": [
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "owner",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "newOwner",
					"type": "address"
				}
			],
			"name": "LockOwnerChanged",
			"type": "event"
		},
		{
			"anonymous": false,
			"inputs": [
				{
					"indexed": true,
					"internalType": "uint256",
					"name": "id",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "owner",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "unlockedAt",
					"type": "uint256"
				}
			],
			"name": "LockRemoved",
			"type": "event"
		},
		{
			"anonymous": false,
			"inputs": [
				{
					"indexed": true,
					"internalType": "uint256",
					"name": "id",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "owner",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "newAmount",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "newUnlockDate",
					"type": "uint256"
				}
			],
			"name": "LockUpdated",
			"type": "event"
		},
		{
			"anonymous": false,
			"inputs": [
				{
					"indexed": true,
					"internalType": "uint256",
					"name": "id",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "address",
					"name": "owner",
					"type": "address"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "remaining",
					"type": "uint256"
				},
				{
					"indexed": false,
					"internalType": "uint256",
					"name": "timestamp",
					"type": "uint256"
				}
			],
			"name": "LockVested",
			"type": "event"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				}
			],
			"name": "advanceUnlock",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"name": "agent",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "allNormalTokenLockedCount",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "bbToken",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "referrer",
					"type": "address"
				}
			],
			"name": "bindParent",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "btcbToken",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "cumulativeBtcb",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"name": "cumulativeLockInfo",
			"outputs": [
				{
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "developerAddress1",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "developerAddress2",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "developerAddress3",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "developerAddress4",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "newAmount",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "newUnlockDate",
					"type": "uint256"
				}
			],
			"name": "editLock",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "getCumulativeNormalTokenLockInfo",
			"outputs": [
				{
					"components": [
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"internalType": "struct Btcbank.CumulativeLockInfo[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "index",
					"type": "uint256"
				}
			],
			"name": "getCumulativeNormalTokenLockInfoAt",
			"outputs": [
				{
					"components": [
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"internalType": "struct Btcbank.CumulativeLockInfo",
					"name": "",
					"type": "tuple"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "index",
					"type": "uint256"
				}
			],
			"name": "getLockAt",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock",
					"name": "",
					"type": "tuple"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				}
			],
			"name": "getLockById",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock",
					"name": "",
					"type": "tuple"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "token",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "getLocksForToken",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "getTotalLockCount",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "receiveAddress",
					"type": "address"
				},
				{
					"internalType": "address",
					"name": "referenceAddress",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "referenceRatio",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "isOwner",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "unlockDate",
					"type": "uint256"
				},
				{
					"internalType": "bool",
					"name": "isBuy",
					"type": "bool"
				},
				{
					"internalType": "string",
					"name": "description",
					"type": "string"
				},
				{
					"internalType": "string",
					"name": "title",
					"type": "string"
				}
			],
			"name": "lock",
			"outputs": [],
			"stateMutability": "payable",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "lpFee",
			"outputs": [
				{
					"internalType": "uint24",
					"name": "",
					"type": "uint24"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				}
			],
			"name": "normalLockCountForUser",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "index",
					"type": "uint256"
				}
			],
			"name": "normalLockForUserAtIndex",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock",
					"name": "",
					"type": "tuple"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "normalLocksForUser",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "owner",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "produceBB",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "queryBtcbPrcie",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "quoterV2",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "receiveLocksForUser",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "receiveOwnerLocksForUser",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "user",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "start",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "end",
					"type": "uint256"
				}
			],
			"name": "recommendLocksForUser",
			"outputs": [
				{
					"components": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "create",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "receiveAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "referenceAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "referenceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "isRecoverLock",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lockDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeDate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "tgeBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycle",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "cycleBps",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "unlockedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyUsdt",
							"type": "uint256"
						},
						{
							"internalType": "string",
							"name": "description",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "title",
							"type": "string"
						}
					],
					"internalType": "struct Btcbank.Lock[]",
					"name": "",
					"type": "tuple[]"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				}
			],
			"name": "renounceLockOwnership",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "addr1",
					"type": "address"
				},
				{
					"internalType": "address",
					"name": "addr2",
					"type": "address"
				},
				{
					"internalType": "address",
					"name": "addr3",
					"type": "address"
				},
				{
					"internalType": "address",
					"name": "addr4",
					"type": "address"
				}
			],
			"name": "setDeveloperAddress",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint24",
					"name": "_fee",
					"type": "uint24"
				}
			],
			"name": "setLpFee",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "swapRouter",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "token",
					"type": "address"
				}
			],
			"name": "totalLockCountForToken",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "totalTokenLockedCount",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				},
				{
					"internalType": "address",
					"name": "newOwner",
					"type": "address"
				}
			],
			"name": "transferLockOwnership",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "newOwner",
					"type": "address"
				}
			],
			"name": "transferOwnership",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				}
			],
			"name": "unlock",
			"outputs": [],
			"stateMutability": "nonpayable",
			"type": "function"
		},
		{
			"inputs": [],
			"name": "usdtToken",
			"outputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "",
					"type": "address"
				}
			],
			"name": "userInfo",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "lockBtcb",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "usdt",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "alreadyUsdt",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "profit",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "loss",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "bb",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "address",
					"name": "receiveAddress",
					"type": "address"
				},
				{
					"internalType": "address",
					"name": "referenceAddress",
					"type": "address"
				},
				{
					"internalType": "uint256",
					"name": "referenceRatio",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "amount",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "isOwner",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "tgeDate",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "tgeBps",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "cycle",
					"type": "uint256"
				},
				{
					"internalType": "uint256",
					"name": "cycleBps",
					"type": "uint256"
				},
				{
					"internalType": "bool",
					"name": "isBuy",
					"type": "bool"
				},
				{
					"internalType": "string",
					"name": "description",
					"type": "string"
				},
				{
					"internalType": "string",
					"name": "title",
					"type": "string"
				}
			],
			"name": "vestingLock",
			"outputs": [],
			"stateMutability": "payable",
			"type": "function"
		},
		{
			"inputs": [
				{
					"internalType": "uint256",
					"name": "lockId",
					"type": "uint256"
				}
			],
			"name": "withdrawableTokens",
			"outputs": [
				{
					"internalType": "uint256",
					"name": "",
					"type": "uint256"
				}
			],
			"stateMutability": "view",
			"type": "function"
		}
	]

}
export {bankAbi}